package app

import (
	"github.com/allegro/bigcache"
	"server/common"
	"server/logger"
	"time"
)

var config = bigcache.Config{
	Shards:             1024,             //切片数，必须为2的整数幂；
	LifeWindow:         10 * time.Minute, //数据可被清除（驱逐）的时间；
	CleanWindow:        5 * time.Minute,  //扫描清除的时间间隔；
	MaxEntriesInWindow: 1000 * 10 * 60,   //初始的数据规模；
	MaxEntrySize:       500,              //初始的数据字节大小；
	Verbose:            true,             //是否输出运行信息；
	HardMaxCacheSize:   8192,             //硬性的最大规模；
	OnRemove:           nil,              //清除数据的回调；
	OnRemoveWithReason: nil,              //包括清除原因的清除回调。
}

func InitBigCache() {
	// 设置缓存值并带上过期时间
	common.Cache, _ = bigcache.NewBigCache(config)
}

func SetCache(key string, value []byte) {
	err := common.Cache.Set(key, value)
	if err != nil {
		logger.Error(err.Error())
	}

}

func GetCache(key string) string {
	entry, err := common.Cache.Get(key)
	if err != nil {
		logger.Error(err.Error())
	}
	value := string(entry)
	return value
}
